home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / bin / jockey-text < prev    next >
Text File  |  2009-10-25  |  4KB  |  131 lines

  1. #!/usr/bin/python
  2.  
  3. # (c) 2009 Canonical Ltd.
  4. #
  5. # Author: Mario Limonciello <Mario_Limonciello@Dell.com>
  6. #
  7. # This program is free software; you can redistribute it and/or modify
  8. # it under the terms of the GNU General Public License as published by
  9. # the Free Software Foundation; either version 2 of the License, or
  10. # (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. # GNU General Public License for more details.
  16.  
  17. '''Text user interface implementation.'''
  18.  
  19. import sys
  20. import jockey.ui
  21. from jockey.oslib import OSLib
  22.  
  23. class TextUI(jockey.ui.AbstractUI):
  24.     '''Text user interface implementation.'''
  25.  
  26.     #
  27.     # Implementation of required AbstractUI methods
  28.     # 
  29.  
  30.     def convert_keybindings(self, str):
  31.         '''Keyboard accelerator aware gettext() wrapper.
  32.         
  33.         This optionally converts keyboard accelerators to the appropriate
  34.         format for the frontend.
  35.  
  36.         A double underscore ('__') is converted to a real '_'.
  37.         '''
  38.         # nothing to do for text
  39.         return str.replace('_','')
  40.  
  41.     def ui_init(self):
  42.         '''Initialize UI.'''
  43.         pass
  44.  
  45.     def ui_show_main(self):
  46.         '''Show main window.'''
  47.         pass
  48.  
  49.     def ui_main_loop(self):
  50.         '''Main loop for the user interface.
  51.         
  52.         This should return if the user wants to quit the program, and return
  53.         the exit code.
  54.         '''
  55.         pass
  56.  
  57.     def error_message(self, title, text):
  58.         '''Present an error message box.'''
  59.         print title
  60.         print text
  61.  
  62.     def confirm_action(self, title, text, subtext=None, action=None):
  63.         '''Present a confirmation dialog.
  64.  
  65.         If action is given, it is used as button label instead of the default
  66.         'OK'.  Return True if the user confirms, False otherwise.
  67.         '''
  68.         print title
  69.         print text
  70.         if subtext:
  71.             print subtext
  72.         while action:
  73.             print _("Please enter 'y' or 'n' and press Enter")
  74.             str = sys.stdin.readline().lower()
  75.             if str == _('y\n'):
  76.                 return True
  77.             elif str == _('n\n'):
  78.                 return False
  79.             else:
  80.                 continue
  81.         return
  82.  
  83.     def ui_notification(self, title, text):
  84.         '''Present a notification popup.
  85.  
  86.         This should preferably create a tray icon. Clicking on the tray icon or
  87.         notification should run the GUI.
  88.         '''
  89.         pass
  90.  
  91.     def show_notification(self, data):
  92.         pass
  93.  
  94.     def ui_idle(self):
  95.         '''Process pending UI events and return.
  96.  
  97.         This is called while waiting for external processes such as package
  98.         installers.
  99.         '''
  100.         pass
  101.  
  102.     def ui_progress_start(self, title, description, total):
  103.         '''Create a progress dialog.'''
  104.  
  105.         print title
  106.         print description
  107.         
  108.     def ui_progress_update(self, current, total):
  109.         '''Update status of current progress dialog.
  110.         
  111.         current/total specify the number of steps done and total steps to
  112.         do, or -1 if it cannot be determined. In this case the dialog should
  113.         display an indeterminated progress bar (bouncing back and forth).
  114.  
  115.         This should return True to cancel, and False otherwise.
  116.         '''
  117.         if current < 0 or total < 0:
  118.             pass
  119.         else:
  120.             print float(current)/total
  121.  
  122.     def ui_progress_finish(self):
  123.         '''Close the current progress dialog.'''
  124.  
  125.         pass
  126.  
  127. if __name__ == '__main__':
  128.     OSLib.inst = OSLib(client_only=True)
  129.     u = TextUI()
  130.     sys.exit(u.run())
  131.